<template>
  <view class="normal-login-container">
    <view class="login-form-content">
      <view class="input-item flex align-center">
        <view class="iconfont icon-user icon"></view>
        <input v-model="loginForm.username" class="input" type="text" placeholder="请输入账号" maxlength="30" />
      </view>
      <view class="input-item flex align-center">
        <view class="iconfont icon-password icon"></view>
        <input v-model="loginForm.password" type="password" class="input" placeholder="请输入密码" maxlength="20" />
      </view>
	  <view class="input-item flex align-center">
	    <view class="iconfont icon-password icon"></view>
	    <input v-model="newpassword" type="password" class="input" placeholder="请确认密码" maxlength="20" />
	  </view>
      <view class="input-item flex align-center" style="width: 60%;margin: 0px;" v-if="captchaEnabled">
        <view class="iconfont icon-code icon"></view>
        <input v-model="loginForm.code" type="number" class="input" placeholder="请输入验证码" maxlength="4" />
        <view class="login-code"> 
          <image :src="codeUrl" @click="getCode" class="login-code-img"></image>
        </view  >
      </view>
      <view class="action-btn" >
        <button @click="handleregister" class="login-btn cu-btn block bg-blue lg round">注册</button>
      </view>
    </view>
  </view>
</template>

<script>
	import { getCodeImg,register } from '@/api/login'
	export default {
		data(){
			return {
				loginForm:{
					username: "",
					password: "",
					code: "",
					uuid: ''
				},
				newpassword:"",
				captchaEnabled: true,
				codeUrl:''
			}
		},
		created() {
		  this.getCode()
		},
		methods:{
			async handleregister() {
			  if (this.loginForm.username === "") {
			    this.$modal.msgError("请输入您的账号")
			  } else if (this.loginForm.password === "") {
			    this.$modal.msgError("请输入您的密码")
			  } else if (this.newpassword === "") {
			    this.$modal.msgError("请确认您的密码")
			  } else if (this.newpassword != this.loginForm.password) {
			    this.$modal.msgError("两次密码不一致")
			  } else if (this.loginForm.code === "" && this.captchaEnabled) {
			    this.$modal.msgError("请输入验证码")
			  } else {
			    this.$modal.loading("正在注册...")
			    this.pwdLogin()
			  }
			},
			async pwdLogin(){
				let r = await register(this.loginForm)
				console.log(r);
				this.$modal.closeLoading()
				if (r.code==200) {
					this.$modal.msgSuccess('注册成功，您的账号为:'+this.loginForm.username)
				}
				setTimeout(()=>{
					this.$tab.navigateTo('/pages/login')  
				},1500)
				
			},
			getCode() {
			  getCodeImg().then(res => {
			    this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
			    if (this.captchaEnabled) {
			      this.codeUrl = 'data:image/gif;base64,' + res.img
			      this.loginForm.uuid = res.uuid
			    }
			  })
			},
		}
	}
</script>

<style lang="scss">
  page {
    background-color: #ffffff;
  }

  .normal-login-container {
    width: 100%;

    .logo-content {
      width: 100%;
      font-size: 21px;
      text-align: center;
      padding-top: 15%;

      image {
        border-radius: 4px;
      }

      .title {
        margin-left: 10px;
      }
    }

    .login-form-content {
      text-align: center;
      margin: 20px auto;
      margin-top: 15%;
      width: 80%;

      .input-item {
        margin: 20px auto;
        background-color: #f5f6f7;
        height: 45px;
        border-radius: 20px;

        .icon {
          font-size: 38rpx;
          margin-left: 10px;
          color: #999;
        }

        .input {
          width: 100%;
          font-size: 14px;
          line-height: 20px;
          text-align: left;
          padding-left: 15px;
        }

      }

      .login-btn {
        margin-top: 40px;
        height: 45px;
      }

      .xieyi {
        color: #333;
        margin-top: 20px;
      }
      
      .login-code {
        height: 38px;
        float: right;
      
        .login-code-img {
          height: 38px;
          position: absolute;
          margin-left: 10px;
          width: 200rpx;
        }
      }
    }
  }

</style>